package grape.house.rest.building.vo;
import grape.common.rest.vo.BaseIdVo;

import grape.common.service.trans.TransBy;
import grape.common.service.trans.impl.DatetimeTransServiceImpl;
import grape.crm.service.company.api.ICompanyService;
import grape.house.service.estate.api.IEstateService;
import grape.house.service.estatelicence.api.IEstateLicenceService;
import grape.house.service.estatephase.api.IEstatePhaseService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 楼栋表
 * </p>
 *
 * @author yangwei
 * @since 2020-09-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="楼栋数据响应对象")
public class BuildingVo extends BaseIdVo<String> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "编号，唯一")
    private String code;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "名称别名")
    private String nameAlias;

    @ApiModelProperty(value = "经度")
    private String longitude;

    @ApiModelProperty(value = "纬度")
    private String latitude;

    @ApiModelProperty(value = "地下车位数")
    private Integer belowGroundParkingSpaceNum;

    @ApiModelProperty(value = "始建于")
    private Long buildAt;

    @TransBy(type = DatetimeTransServiceImpl.trans_date,byFieldName = "buildAt")
    @ApiModelProperty(value = "始建于文本")
    private String buildAtTxt;

    @ApiModelProperty(value = "建成于")
    private Long builtAt;

    @TransBy(type = DatetimeTransServiceImpl.trans_date,byFieldName = "builtAt")
    @ApiModelProperty(value = "建成于文本")
    private String builtAtTxt;


    @ApiModelProperty(value = "开发商公司id")
    private String developerCompanyId;

    @TransBy(type = ICompanyService.trans_company_name,byFieldName = "developerCompanyId")
    @ApiModelProperty(value = "开发商公司名称")
    private String developerCompanyName;

    @ApiModelProperty(value = "物业公司id")
    private String propertyCompanyId;

    @TransBy(type = ICompanyService.trans_company_name,byFieldName = "propertyCompanyId")
    @ApiModelProperty(value = "物业公司名称")
    private String propertyCompanyName;

    @ApiModelProperty(value = "楼盘id")
    private String estateId;

    @TransBy(type = IEstateService.trans_estate_name,byFieldName = "estateId")
    @ApiModelProperty(value = "楼盘名称")
    private String estateName;

    @ApiModelProperty(value = "楼盘分期 id")
    private String estatePhaseId;

    @TransBy(type = IEstatePhaseService.trans_estate_phase_name,byFieldName = "estatePhaseId")
    @ApiModelProperty(value = "楼盘分期名称")
    private String estatePhaseName;

    @ApiModelProperty(value = "总层数")
    private Integer floorNum;

    @ApiModelProperty(value = "单元数")
    private Integer unitNum;

    @ApiModelProperty(value = "总套数")
    private Integer roomNum;

    @ApiModelProperty(value = "预售许可证id")
    private String presaleEstateLicenceId;

    @TransBy(type = IEstateLicenceService.trans_estate_licence_name,byFieldName = "presaleEstateLicenceId")
    @ApiModelProperty(value = "预售许可证名称")
    private String presaleEstateLicenceName;

    @TransBy(type = IEstateLicenceService.trans_estate_licence_code,byFieldName = "presaleEstateLicenceId")
    @ApiModelProperty(value = "预售许可证编号")
    private String presaleEstateLicenceCode;
}
